public class global_api
{
    /// <summary>
    /// 清空标签
    /// </summary>
    /// <param name="actor"> Actor </param>
    /// <returns></returns>
    public static extern void api_clear_tag(dynamic actor);

    /// <summary>
    /// 清空自定义键值
    /// </summary>
    /// <param name="actor"> Actor </param>
    /// <returns></returns>
    public static extern void api_clear_kv(dynamic actor);

    /// <summary>
    /// 判断Actor是否有Tag
    /// </summary>
    /// <param name="actor"> Actor </param>
    /// <param name="tag"> Tag标签 </param>
    /// <returns>是否有tag</returns>
    public static extern bool? has_tag(dynamic actor,string tag);

    /// <summary>
    /// 判断Actor是否有kv
    /// </summary>
    /// <param name="kvbase"> Actor </param>
    /// <param name="key"> kv </param>
    /// <returns>是否有tag</returns>
    public static extern bool? api_has_kv_any(dynamic kvbase,string key);

    /// <summary>
    /// 字符串A是否包含字符串B
    /// </summary>
    /// <param name="str_a"> str </param>
    /// <param name="str_b"> str </param>
    /// <returns>是否包含</returns>
    public static extern bool? is_str_include_other(string str_a,string str_b);

    /// <summary>
    /// 使能Actor身上的触发器
    /// </summary>
    /// <param name="actor"> Actor </param>
    /// <param name="trigger_id"> 触发器id </param>
    /// <param name="enabled"> 使能 </param>
    /// <returns></returns>
    public static extern void set_actor_trigger_enabled(dynamic actor,int? trigger_id,bool? enabled);

    /// <summary>
    /// 触发Actor身上的触发器
    /// </summary>
    /// <param name="actor"> actor </param>
    /// <param name="trigger_id"> 触发器id </param>
    /// <returns></returns>
    public static extern void trigger_actor_trigger(dynamic actor,int? trigger_id);

    /// <summary>
    /// 注册Actor上的触发器并生效
    /// </summary>
    /// <param name="actor"> actor </param>
    /// <param name="conf_id"> 触发器配置id </param>
    /// <param name="context"> 上下文 </param>
    /// <returns>动态触发器实例</returns>
    public static extern dynamic reg_actor_trigger(dynamic actor,int? conf_id,dynamic context);

    /// <summary>
    /// 注销Actor上的触发器
    /// </summary>
    /// <param name="actor"> actor </param>
    /// <param name="trigger_id"> 动态触发器实例 </param>
    /// <returns></returns>
    public static extern void unreg_actor_trigger(dynamic actor,dynamic trigger_id);

    /// <summary>
    /// 创建一个扇形
    /// </summary>
    /// <param name="radius"> 半径 </param>
    /// <param name="angle"> 角度 </param>
    /// <param name="yaw"> 朝向 </param>
    /// <returns>扇形对象</returns>
    public static extern Shape create_sector_shape(Fix32 radius,Fix32 angle,double? yaw);

    /// <summary>
    /// 创建一个圆形
    /// </summary>
    /// <param name="radius"> 半径 </param>
    /// <returns>圆形对象</returns>
    public static extern Shape create_circular_shape(Fix32 radius);

    /// <summary>
    /// 创建一个矩形
    /// </summary>
    /// <param name="width"> 长 </param>
    /// <param name="length"> 宽 </param>
    /// <param name="yaw"> 朝向 </param>
    /// <param name="offset_x_ratio"> 偏移x </param>
    /// <param name="offset_y_ratio"> 偏移y </param>
    /// <returns>矩形对象</returns>
    public static extern Shape create_rectangle_shape(Fix32 width,Fix32 length,double? yaw,Fix32 offset_x_ratio,Fix32 offset_y_ratio);

    /// <summary>
    /// 创建一个环形
    /// </summary>
    /// <param name="small_r"> 小圆半径 </param>
    /// <param name="big_r"> 大圆半径 </param>
    /// <returns>环形对象</returns>
    public static extern Shape create_annular_shape(Fix32 small_r,Fix32 big_r);

    /// <summary>
    /// 坐标值转化为FVector3
    /// </summary>
    /// <param name="x"> x </param>
    /// <param name="z"> y </param>
    /// <param name="y"> z </param>
    /// <returns>FVector3</returns>
    public static extern Point coord_to_point(Fix32 x,Fix32 z,Fix32 y);

    /// <summary>
    /// 三维坐标值转化为FVector3
    /// </summary>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="z"> z </param>
    /// <returns>FVector3</returns>
    public static extern Point float_to_vector3(Fix32 x,Fix32 y,Fix32 z);

    /// <summary>
    /// 返回三维向量的X
    /// </summary>
    /// <param name="vector"> 三维向量 </param>
    /// <returns>X</returns>
    public static extern Fix32 get_vector3_x(Point vector);

    /// <summary>
    /// 返回三维向量的Y
    /// </summary>
    /// <param name="vector"> 三维向量 </param>
    /// <returns>Y</returns>
    public static extern Fix32 get_vector3_y(Point vector);

    /// <summary>
    /// 返回三维向量的Z
    /// </summary>
    /// <param name="vector"> 三维向量 </param>
    /// <returns>Z</returns>
    public static extern Fix32 get_vector3_z(Point vector);

    /// <summary>
    /// 三维坐标值转化为FRotation
    /// </summary>
    /// <param name="x"> x </param>
    /// <param name="y"> y </param>
    /// <param name="z"> z </param>
    /// <returns>FVector3</returns>
    public static extern Point float_to_rotation(Fix32 x,Fix32 y,Fix32 z);

    /// <summary>
    /// 返回旋转的Roll
    /// </summary>
    /// <param name="vector"> Rotation </param>
    /// <returns>X</returns>
    public static extern Fix32 get_rotation_roll(Point vector);

    /// <summary>
    /// 返回旋转的YAW
    /// </summary>
    /// <param name="vector"> Rotation </param>
    /// <returns>Y</returns>
    public static extern Fix32 get_rotation_yaw(Point vector);

    /// <summary>
    /// 返回旋转的PITCH
    /// </summary>
    /// <param name="vector"> Rotation </param>
    /// <returns>Z</returns>
    public static extern Fix32 get_rotation_pitch(Point vector);

    /// <summary>
    /// 整数迭代器，最大迭代次数不超过2^20
    /// </summary>
    /// <param name="num"> 迭代次数 </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic int_iterator(int? num);

    /// <summary>
    /// 整数迭代器
    /// </summary>
    /// <param name="start"> 计数从start开始 </param>
    /// <param name="stop"> 计数到stop结束 </param>
    /// <param name="step"> 步长 </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic int_iterator2(int? start,int? stop,int? step);

    /// <summary>
    /// 列表索引迭代器
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic list_index_iterator(dynamic l);

    /// <summary>
    /// table迭代器(废弃)
    /// </summary>
    /// <param name="l"> TAB </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic table_iterator(dynamic l);

    /// <summary>
    /// get_iter_table_key_str
    /// </summary>
    /// <param name="item"> table iter item </param>
    /// <returns>key str</returns>
    public static extern string get_iter_table_key_str(dynamic item);

    /// <summary>
    /// get_iter_table_key_int
    /// </summary>
    /// <param name="item"> table iter item </param>
    /// <returns>key int</returns>
    public static extern int? get_iter_table_key_int(dynamic item);

    /// <summary>
    /// Int32运算
    /// </summary>
    /// <param name="v1"> x </param>
    /// <param name="op"> operator(+,-,*,/,%) </param>
    /// <param name="v2"> y </param>
    /// <returns>返回值</returns>
    public static extern int? int32_arithmetic_operation(int? v1,string op,int? v2);

    /// <summary>
    /// Int32自增1
    /// </summary>
    /// <param name="int_value"> x </param>
    /// <returns>返回值</returns>
    public static extern int? int32_plus_one(int? int_value);

    /// <summary>
    /// Int32取较小值
    /// </summary>
    /// <param name="int_value1"> x1 </param>
    /// <param name="int_value2"> x2 </param>
    /// <returns>返回值</returns>
    public static extern int? int32_min(int? int_value1,int? int_value2);

    /// <summary>
    /// Int32取较大值
    /// </summary>
    /// <param name="int_value1"> x1 </param>
    /// <param name="int_value2"> x2 </param>
    /// <returns>返回值</returns>
    public static extern int? int32_max(int? int_value1,int? int_value2);

    /// <summary>
    /// 点向方向偏移
    /// </summary>
    /// <param name="point"> 起始点 </param>
    /// <param name="angle"> 方向角度 </param>
    /// <param name="dis"> 偏移距离 </param>
    /// <returns>返回值</returns>
    public static extern Point get_point_offset_vector(Point point,Fix32 angle,Fix32 dis);

    /// <summary>
    /// int64转换字符串
    /// </summary>
    /// <param name="val"> 值 </param>
    /// <returns>字符串</returns>
    public static extern string int64_to_str(int? val);

    /// <summary>
    /// to_str_default
    /// </summary>
    /// <param name="val"> 值 </param>
    /// <returns>字符串</returns>
    public static extern string to_str_default(dynamic val);

    /// <summary>
    /// 删除键值对
    /// </summary>
    /// <param name="kvbase"> 键值对容器 </param>
    /// <param name="key"> 键名 </param>
    /// <returns></returns>
    public static extern void api_remove_kv(string kvbase,string key);

    /// <summary>
    /// 获取单位编号池内单位编号数量
    /// </summary>
    /// <param name="pool"> 单位编号池 </param>
    /// <returns>单位编号数量</returns>
    public static extern int? get_unit_key_pool_num(int? pool);

    /// <summary>
    /// 两点之间距离
    /// </summary>
    /// <param name="p1"> 目标点 </param>
    /// <param name="p2"> 起始点 </param>
    /// <returns>距离</returns>
    public static extern Fix32 plane_range_between_2_point(Point p1,Point p2);

    /// <summary>
    /// 整数转定点数
    /// </summary>
    /// <param name="i"> 整数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 int32_to_fixed(int? i);

    /// <summary>
    /// 实数近似比较(4位小数)
    /// </summary>
    /// <param name="a"> 定点数1 </param>
    /// <param name="op"> 比较符 </param>
    /// <param name="b"> 定点数2 </param>
    /// <returns>结果</returns>
    public static extern bool? fix32_equal_with_precision(Fix32 a,string op,Fix32 b);

    /// <summary>
    /// 定点数转整数
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>整数</returns>
    public static extern int? fixed_to_int32(Fix32 f);

    /// <summary>
    /// 技能槽位转整数
    /// </summary>
    /// <param name="ability_index"> 技能槽位 </param>
    /// <returns>整数</returns>
    public static extern int? ability_index_to_int32(int? ability_index);

    /// <summary>
    /// 定点数转字符串
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>字符串</returns>
    public static extern string fixed_to_str(Fix32 f);

    /// <summary>
    /// 定点FVector3转字符串
    /// </summary>
    /// <param name="f"> FVector3 </param>
    /// <returns>字符串</returns>
    public static extern string fvector3_to_str(Point f);

    /// <summary>
    /// 定点FVector2转字符串
    /// </summary>
    /// <param name="f"> FVector2 </param>
    /// <returns>字符串</returns>
    public static extern string fvector2_to_str(Point f);

    /// <summary>
    /// 浮点数转字符串
    /// </summary>
    /// <param name="f"> 浮点数 </param>
    /// <param name="num"> 保留位数 </param>
    /// <returns>字符串</returns>
    public static extern string float_to_str(double? f,int? num);

    /// <summary>
    /// 浮点Vector3转字符串
    /// </summary>
    /// <param name="f"> Vector3 </param>
    /// <returns>字符串</returns>
    public static extern string vector3_to_str(Point f);

    /// <summary>
    /// 字符串转Vector3
    /// </summary>
    /// <param name="f"> 字符串 </param>
    /// <returns>Vector3</returns>
    public static extern Point str_to_vector3(string f);

    /// <summary>
    /// 浮点Vector2转字符串
    /// </summary>
    /// <param name="f"> Vector2 </param>
    /// <returns>字符串</returns>
    public static extern string vector2_to_str(Point f);

    /// <summary>
    /// Shape转字符串
    /// </summary>
    /// <param name="f"> Shape </param>
    /// <returns>字符串</returns>
    public static extern string shape_to_str(Shape f);

    /// <summary>
    /// 动态类型数转字符串
    /// </summary>
    /// <param name="f"> 动态类型 </param>
    /// <returns>字符串</returns>
    public static extern string dynamic_to_str(dynamic f);

    /// <summary>
    /// int32_to_str
    /// </summary>
    /// <param name="f"> int32 </param>
    /// <returns>字符串</returns>
    public static extern string int32_to_str(int? f);

    /// <summary>
    /// 布尔型转字符串
    /// </summary>
    /// <param name="f"> 布尔值 </param>
    /// <returns>字符串</returns>
    public static extern string bool_to_str(bool? f);

    /// <summary>
    /// 整数转字符串
    /// </summary>
    /// <param name="i"> 整数值 </param>
    /// <returns>字符串</returns>
    public static extern string i2s(int? i);

    /// <summary>
    /// 字符串拼接
    /// </summary>
    /// <param name="s1"> 字符串 </param>
    /// <param name="s2"> 字符串 </param>
    /// <param name="s3"> 字符串 </param>
    /// <param name="s4"> 字符串 </param>
    /// <param name="s5"> 字符串 </param>
    /// <param name="s6"> 字符串 </param>
    /// <param name="s7"> 字符串 </param>
    /// <param name="s8"> 字符串 </param>
    /// <param name="s9"> 字符串 </param>
    /// <param name="s10"> 字符串 </param>
    /// <returns>字符串</returns>
    public static extern string join_s(string s1,string s2,string s3,string s4,string s5,string s6,string s7,string s8,string s9,string s10);

    /// <summary>
    /// 字符串拼接
    /// </summary>
    /// <param name="s1"> 字符串 </param>
    /// <param name="s2"> 字符串 </param>
    /// <param name="s3"> 字符串 </param>
    /// <param name="s4"> 字符串 </param>
    /// <param name="s5"> 字符串 </param>
    /// <param name="s6"> 字符串 </param>
    /// <param name="s7"> 字符串 </param>
    /// <param name="s8"> 字符串 </param>
    /// <param name="s9"> 字符串 </param>
    /// <param name="s10"> 字符串 </param>
    /// <returns>字符串</returns>
    public static extern string join_s_new(string s1,string s2,string s3,string s4,string s5,string s6,string s7,string s8,string s9,string s10);

    /// <summary>
    /// 开方
    /// </summary>
    /// <param name="base"> 开方底 </param>
    /// <param name="num"> 开方次数 </param>
    /// <returns>计算结果</returns>
    public static extern Fix32 root(Fix32 @base,Fix32 num);

    /// <summary>
    /// 字符串替换
    /// </summary>
    /// <param name="s1"> 母字符串 </param>
    /// <param name="old"> 被替换的字符串 </param>
    /// <param name="new"> 替换目标字符串 </param>
    /// <param name="num"> 最大替换次数 </param>
    /// <returns>字符串</returns>
    public static extern string replace_str(string s1,string old,string @new,int? num);

    /// <summary>
    /// 定点数运算
    /// </summary>
    /// <param name="a"> x </param>
    /// <param name="o"> operator(+,-*,/) </param>
    /// <param name="b"> y </param>
    /// <returns>定点数</returns>
    public static extern Fix32 fixed_arithmetic_operation(Fix32 a,string o,Fix32 b);

    /// <summary>
    /// 三维向量运算
    /// </summary>
    /// <param name="a"> x </param>
    /// <param name="o"> operator(+,-) </param>
    /// <param name="b"> y </param>
    /// <returns>定点数Vector3</returns>
    public static extern Point vector3_arithmetic_operation(Point a,string o,Point b);

    /// <summary>
    /// 三维向量的长度
    /// </summary>
    /// <param name="vec3"> x </param>
    /// <returns>定点数</returns>
    public static extern Fix32 vector3_length(Point vec3);

    /// <summary>
    /// 三维向量归一化
    /// </summary>
    /// <param name="vec3"> 三维向量 </param>
    /// <returns></returns>
    public static extern void vector3_normalize(Point vec3);

    /// <summary>
    /// 三维向量的归一化向量
    /// </summary>
    /// <param name="vec3"> 三维向量 </param>
    /// <returns>三维向量</returns>
    public static extern Point get_vector3_normalize(Point vec3);

    /// <summary>
    /// 三维向量乘以标量
    /// </summary>
    /// <param name="vec3"> 三维向量 </param>
    /// <param name="scalar"> 标量 </param>
    /// <returns></returns>
    public static extern void vector3_multiply_scalar(Point vec3,Point scalar);

    /// <summary>
    /// 三维向量转欧拉角
    /// </summary>
    /// <param name="vec3"> 三维向量 </param>
    /// <returns>欧拉角</returns>
    public static extern Point vector3_to_euler(Point vec3);

    /// <summary>
    /// 获得三维向量绕轴旋转后的向量
    /// </summary>
    /// <param name="vec3"> 三维向量 </param>
    /// <param name="angle"> 旋转角度 </param>
    /// <param name="axis"> 旋转轴 </param>
    /// <returns>定点数Vector3</returns>
    public static extern Point VECTOR3_ANGLE_AXIS(Point vec3,Fix32 angle,Point axis);

    /// <summary>
    /// 定点数自增1
    /// </summary>
    /// <param name="fix_value"> x </param>
    /// <returns>定点数</returns>
    public static extern Fix32 fixed_plus_one(Fix32 fix_value);

    /// <summary>
    /// 取两个定点数最小值
    /// </summary>
    /// <param name="fix_value1"> x1 </param>
    /// <param name="fix_value2"> x2 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 fixed_min(Fix32 fix_value1,Fix32 fix_value2);

    /// <summary>
    /// 取两个定点数最小大值
    /// </summary>
    /// <param name="fix_value1"> x1 </param>
    /// <param name="fix_value2"> x2 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 fixed_max(Fix32 fix_value1,Fix32 fix_value2);

    /// <summary>
    /// 角度计算
    /// </summary>
    /// <param name="a"> x </param>
    /// <param name="o"> operator(+,-*,/) </param>
    /// <param name="b"> y </param>
    /// <returns>定点数</returns>
    public static extern Fix32 angle_arithmetic_operation(Fix32 a,string o,Fix32 b);

    /// <summary>
    /// 转换度到弧度
    /// </summary>
    /// <param name="d"> 角度 </param>
    /// <returns>弧度</returns>
    public static extern Fix32 degree_to_radian(Fix32 d);

    /// <summary>
    /// 正弦
    /// </summary>
    /// <param name="r"> 弧度 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 radian_sin(Fix32 r);

    /// <summary>
    /// 余弦
    /// </summary>
    /// <param name="r"> 弧度 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 radian_cos(Fix32 r);

    /// <summary>
    /// 正切
    /// </summary>
    /// <param name="r"> 弧度 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 radian_tan(Fix32 r);

    /// <summary>
    /// 反正弦
    /// </summary>
    /// <param name="r"> 定点数 </param>
    /// <returns>弧度</returns>
    public static extern Fix32 radian_asin(Fix32 r);

    /// <summary>
    /// 反余弦
    /// </summary>
    /// <param name="r"> 定点数 </param>
    /// <returns>弧度</returns>
    public static extern Fix32 radian_acos(Fix32 r);

    /// <summary>
    /// 反正切
    /// </summary>
    /// <param name="r"> 定点数 </param>
    /// <returns>弧度</returns>
    public static extern Fix32 radian_atan(Fix32 r);

    /// <summary>
    /// 反正切(Y:X)
    /// </summary>
    /// <param name="y"> 定点数 </param>
    /// <param name="x"> 定点数 </param>
    /// <returns>弧度</returns>
    public static extern Fix32 radian_atan_x_y(Fix32 y,Fix32 x);

    /// <summary>
    /// 平方根
    /// </summary>
    /// <param name="x"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 sqrt(Fix32 x);

    /// <summary>
    /// 求幂
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <param name="n"> 整数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 pow(Fix32 f,int? n);

    /// <summary>
    /// 求绝对值
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 abs(Fix32 f);

    /// <summary>
    /// 求绝对值
    /// </summary>
    /// <param name="number"> 整数 </param>
    /// <returns>整数</returns>
    public static extern int? int_abs(int? number);

    /// <summary>
    /// 区间
    /// </summary>
    /// <param name="x0"> 定点数 </param>
    /// <param name="x1"> 定点数 </param>
    /// <param name="x2"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 interval(Fix32 x0,Fix32 x1,Fix32 x2);

    /// <summary>
    /// 找最近的二次方数
    /// </summary>
    /// <param name="x"> 定点数 </param>
    /// <returns>二次方数</returns>
    public static extern int? nearest_quadratic_number(Fix32 x);

    /// <summary>
    /// 最小整数
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>整数</returns>
    public static extern int? ceil(Fix32 f);

    /// <summary>
    /// 最大整数
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>整数</returns>
    public static extern int? floor(Fix32 f);

    /// <summary>
    /// 插值
    /// </summary>
    /// <param name="x_from"> 定点数 </param>
    /// <param name="x_to"> 定点数 </param>
    /// <param name="t"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 interpolate(Fix32 x_from,Fix32 x_to,Fix32 t);

    /// <summary>
    /// 反插值
    /// </summary>
    /// <param name="x_from"> 定点数 </param>
    /// <param name="x_to"> 定点数 </param>
    /// <param name="res_val"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 invert_interpolate(Fix32 x_from,Fix32 x_to,Fix32 res_val);

    /// <summary>
    /// 对数10
    /// </summary>
    /// <param name="x"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 log10(Fix32 x);

    /// <summary>
    /// 对数
    /// </summary>
    /// <param name="x1"> 定点数 </param>
    /// <param name="x2"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 log(Fix32 x1,Fix32 x2);

    /// <summary>
    /// 返回组内最大值
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 get_max_in_list(dynamic l);

    /// <summary>
    /// 返回组内最小值
    /// </summary>
    /// <param name="l"> 列表 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 get_min_in_list(dynamic l);

    /// <summary>
    /// 四舍五入
    /// </summary>
    /// <param name="x"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 round(Fix32 x);

    /// <summary>
    /// 返回正负符号
    /// </summary>
    /// <param name="f"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 sign(Fix32 f);

    /// <summary>
    /// 保留X位小数
    /// </summary>
    /// <param name="x"> 定点数 </param>
    /// <param name="num"> X位小数 </param>
    /// <param name="b"> 是否四舍五入 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 round_dec(Fix32 x,int? num,bool? b);

    /// <summary>
    /// 定点数三角函数运算
    /// </summary>
    /// <param name="o"> method(sin,cos,tan) </param>
    /// <param name="a"> 定点数 </param>
    /// <returns>定点数</returns>
    public static extern Fix32 fixed_trigonometric_operation(string o,Fix32 a);

    /// <summary>
    /// 玩家组的玩家数量
    /// </summary>
    /// <param name="player_group"> 玩家组 </param>
    /// <returns>玩家数量</returns>
    public static extern int? get_player_group_num(RoleGroup player_group);

    /// <summary>
    /// 获取Actor关联技能
    /// </summary>
    /// <param name="actor"> Actor </param>
    /// <returns>技能</returns>
    public static extern Ability get_related_ability(dynamic actor);

    /// <summary>
    /// 为Actor添加定时器
    /// </summary>
    /// <param name="actor"> actor </param>
    /// <param name="name"> 定时器名称 </param>
    /// <param name="once"> 字符串 </param>
    /// <param name="interval"> 定点数 </param>
    /// <param name="context"> 字典 </param>
    /// <returns></returns>
    public static extern void add_actor_timer(dynamic actor,string name,string once,Fix32 interval,dynamic context);

    /// <summary>
    /// 关闭Actor计时器
    /// </summary>
    /// <param name="actor"> actor </param>
    /// <param name="name"> 字符串 </param>
    /// <returns></returns>
    public static extern void stop_actor_timer(dynamic actor,string name);

    /// <summary>
    /// 获取FVector3的其中一个值
    /// </summary>
    /// <param name="point"> FVector3 </param>
    /// <param name="index"> 序号(0-2) </param>
    /// <returns>定点数</returns>
    public static extern Fix32 get_fixed_coord_index(Point point,int? index);

    /// <summary>
    /// 清空组/数组变量
    /// </summary>
    /// <param name="list1"> 列表 </param>
    /// <returns></returns>
    public static extern void clear_group(dynamic list1);

    /// <summary>
    /// 数组 - 删除数组条目
    /// </summary>
    /// <param name="list1"> list var </param>
    /// <param name="idx"> index </param>
    /// <returns></returns>
    public static extern void remove_list_var_item(dynamic list1,int? idx);

    /// <summary>
    /// 将第二个列表的值赋值给第一个列表 不改变第一个列表的长度
    /// </summary>
    /// <param name="list1"> 列表 </param>
    /// <param name="list2"> 列表 </param>
    /// <returns></returns>
    public static extern void set_list_with_length(dynamic list1,dynamic list2);

    /// <summary>
    /// 判断玩家是否在玩家组
    /// </summary>
    /// <param name="role"> 玩家 </param>
    /// <param name="group"> 玩家组 </param>
    /// <returns>布尔值</returns>
    public static extern bool? judge_role_in_group(Role role,RoleGroup group);

    /// <summary>
    /// 判断单位是否活着
    /// </summary>
    /// <param name="unit"> 单位 </param>
    /// <returns>布尔值</returns>
    public static extern bool? is_unit_alive(Unit unit);

    /// <summary>
    /// 获取空的单位编号池
    /// </summary>
    /// <returns>单位编号池</returns>
    public static extern int? get_empty_unit_key_pool();

    /// <summary>
    /// 获取路径中某点
    /// </summary>
    /// <param name="road_point_list"> 路径 </param>
    /// <param name="index"> 下标 </param>
    /// <returns>点</returns>
    public static extern Point get_point_in_route(Road road_point_list,int? index);

    /// <summary>
    /// 点绕Y轴旋转(角度制)
    /// </summary>
    /// <param name="point"> 点 </param>
    /// <param name="angle"> 旋转 </param>
    /// <returns>点</returns>
    public static extern Point get_point_rotate_y(Point point,Fix32 angle);

    /// <summary>
    /// 字符串转整数
    /// </summary>
    /// <param name="s"> 字符串 </param>
    /// <returns>返回值</returns>
    public static extern int? str_to_int(string s);

    /// <summary>
    /// 字符串转布尔值
    /// </summary>
    /// <param name="s"> 字符串 </param>
    /// <returns>布尔值</returns>
    public static extern bool? str_to_bool(string s);

    /// <summary>
    /// 字符串转定点数
    /// </summary>
    /// <param name="s"> 字符串 </param>
    /// <returns>返回值</returns>
    public static extern Fix32 str_to_fixed(string s);

    /// <summary>
    /// 删除子字符串
    /// </summary>
    /// <param name="str1"> 原字符串 </param>
    /// <param name="sub_str"> 子字符串 </param>
    /// <param name="only_one"> 仅一次 </param>
    /// <returns>原字符串</returns>
    public static extern string delete_sub_str(string str1,string sub_str,bool? only_one);

    /// <summary>
    /// 截取子字符串
    /// </summary>
    /// <param name="str1"> 原字符串 </param>
    /// <param name="index1"> 左下标 </param>
    /// <param name="index2"> 右下标 </param>
    /// <returns>截取后字符串</returns>
    public static extern string extract_str(string str1,int? index1,int? index2);

    /// <summary>
    /// 获取字符串长度
    /// </summary>
    /// <param name="str1"> 字符串 </param>
    /// <returns>字符串长度</returns>
    public static extern int? length_of_str(string str1);

    /// <summary>
    /// 字符串大小写统一
    /// </summary>
    /// <param name="str1"> 原字符串 </param>
    /// <param name="is_upper"> 是否大写 </param>
    /// <returns>处理后字符串</returns>
    public static extern string str_to_upper_lower(string str1,bool? is_upper);

    /// <summary>
    /// 子字符串位置
    /// </summary>
    /// <param name="str1"> 原字符串 </param>
    /// <param name="sub_str"> 子字符串 </param>
    /// <returns>子字符串位置</returns>
    public static extern int? pos_in_str(string str1,string sub_str);

    /// <summary>
    /// 整数转化为特效类型
    /// </summary>
    /// <param name="integer"> 整数 </param>
    /// <returns>投射物类型</returns>
    public static extern int? api_int_to_key(int? integer);

    /// <summary>
    /// 将投射物类型转化为整数
    /// </summary>
    /// <param name="key"> 投射物类型 </param>
    /// <returns>整数</returns>
    public static extern int? api_key_to_int(int? key);

    /// <summary>
    /// 单位命令类型转字符串
    /// </summary>
    /// <param name="val"> 单位命令类型 </param>
    /// <returns>字符串</returns>
    public static extern string unit_command_type_to_str(string val);

    /// <summary>
    /// 字符串转单位命令类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>单位命令类型</returns>
    public static extern string str_to_unit_command_type(string val);

    /// <summary>
    /// 技能释放类型转字符串
    /// </summary>
    /// <param name="val"> 技能释放类型 </param>
    /// <returns>字符串</returns>
    public static extern string ability_cast_type_to_str(int? val);

    /// <summary>
    /// 字符串转技能释放类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>技能释放类型</returns>
    public static extern int? str_to_ability_cast_type(string val);

    /// <summary>
    /// 多边形区域转字符串
    /// </summary>
    /// <param name="obj"> 多边形区域 </param>
    /// <returns>字符串</returns>
    public static extern string poly_area_to_str(PolyArea obj);

    /// <summary>
    /// 投射物组转字符串
    /// </summary>
    /// <param name="obj"> 投射物组 </param>
    /// <returns>字符串</returns>
    public static extern string projectile_group_to_str(ProjectileGroup obj);

    /// <summary>
    /// 玩家关系转字符串
    /// </summary>
    /// <param name="val"> 玩家关系 </param>
    /// <returns>字符串</returns>
    public static extern string role_relation_to_str(int? val);

    /// <summary>
    /// 字符串转玩家关系
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>玩家关系</returns>
    public static extern int? str_to_role_relation(string val);

    /// <summary>
    /// 单位编号池转字符串
    /// </summary>
    /// <param name="obj"> 单位编号池 </param>
    /// <returns>字符串</returns>
    public static extern string unit_key_pool_to_str(int? obj);

    /// <summary>
    /// 单位分类转字符串
    /// </summary>
    /// <param name="val"> 单位类型 </param>
    /// <returns>字符串</returns>
    public static extern string unit_type_to_str(int? val);

    /// <summary>
    /// 字符串转单位分类
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>单位类型</returns>
    public static extern int? str_to_unit_type(string val);

    /// <summary>
    /// 计时器转字符串
    /// </summary>
    /// <param name="val"> 计时器 </param>
    /// <returns>字符串</returns>
    public static extern string timer_to_str(Timer val);

    /// <summary>
    /// 单位转字符串
    /// </summary>
    /// <param name="obj"> 单位 </param>
    /// <returns>字符串</returns>
    public static extern string unit_to_str(Unit obj);

    /// <summary>
    /// 单位组转字符串
    /// </summary>
    /// <param name="obj"> 单位组 </param>
    /// <returns>字符串</returns>
    public static extern string unit_group_to_str(UnitGroup obj);

    /// <summary>
    /// 物品转字符串
    /// </summary>
    /// <param name="obj"> 物品对象 </param>
    /// <returns>字符串</returns>
    public static extern string item_to_str(Item obj);

    /// <summary>
    /// 物品组转字符串
    /// </summary>
    /// <param name="obj"> 物品组 </param>
    /// <returns>字符串</returns>
    public static extern string item_group_to_str(ItemGroup obj);

    /// <summary>
    /// 运动器转字符串
    /// </summary>
    /// <param name="obj_id"> 运动器 </param>
    /// <returns>字符串</returns>
    public static extern string mover_entity_to_str(Mover obj_id);

    /// <summary>
    /// 玩家转字符串
    /// </summary>
    /// <param name="obj"> 玩家 </param>
    /// <returns>字符串</returns>
    public static extern string role_to_str(Role obj);

    /// <summary>
    /// 玩家组转字符串
    /// </summary>
    /// <param name="obj"> 玩家组 </param>
    /// <returns>字符串</returns>
    public static extern string role_group_to_str(RoleGroup obj);

    /// <summary>
    /// 玩家状态转字符串
    /// </summary>
    /// <param name="val"> 玩家状态 </param>
    /// <returns>字符串</returns>
    public static extern string role_status_to_str(int? val);

    /// <summary>
    /// 字符串转玩家状态
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>玩家状态</returns>
    public static extern int? str_to_role_status(string val);

    /// <summary>
    /// 玩家控制者转字符串
    /// </summary>
    /// <param name="val"> 玩家控制者类型 </param>
    /// <returns>字符串</returns>
    public static extern string role_type_to_str(int? val);

    /// <summary>
    /// 字符串转玩家控制者
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>玩家控制者类型</returns>
    public static extern int? str_to_role_type(string val);

    /// <summary>
    /// 技能转字符串
    /// </summary>
    /// <param name="obj"> 技能对象 </param>
    /// <returns>字符串</returns>
    public static extern string ability_to_str(Ability obj);

    /// <summary>
    /// 技能槽位类型转字符串
    /// </summary>
    /// <param name="val"> 技能类型 </param>
    /// <returns>字符串</returns>
    public static extern string ability_type_to_str(int? val);

    /// <summary>
    /// 字符串转技能槽位类型
    /// </summary>
    /// <param name="val"> 技能类型 </param>
    /// <returns>技能类型</returns>
    public static extern int? str_to_ability_type(string val);

    /// <summary>
    /// 矩形区域转字符串
    /// </summary>
    /// <param name="obj"> 矩形区域 </param>
    /// <returns>字符串</returns>
    public static extern string rect_area_to_str(RecArea obj);

    /// <summary>
    /// 圆形区域转字符串
    /// </summary>
    /// <param name="obj"> 圆形区域 </param>
    /// <returns>字符串</returns>
    public static extern string circle_area_to_str(CirArea obj);

    /// <summary>
    /// 路径转字符串
    /// </summary>
    /// <param name="obj"> 路径 </param>
    /// <returns>字符串</returns>
    public static extern string road_to_str(Road obj);

    /// <summary>
    /// 可破坏物转字符串
    /// </summary>
    /// <param name="obj"> 可破坏物对象 </param>
    /// <returns>字符串</returns>
    public static extern string dest_to_str(Destructible obj);

    /// <summary>
    /// 投射物转字符串
    /// </summary>
    /// <param name="obj"> 投掷物对象 </param>
    /// <returns>字符串</returns>
    public static extern string project_to_str(ProjectileEntity obj);

    /// <summary>
    /// 魔法效果转字符串
    /// </summary>
    /// <param name="obj"> 魔法效果对象 </param>
    /// <returns>字符串</returns>
    public static extern string modifier_entity_to_str(ModifierEntity obj);

    /// <summary>
    /// 魔法效果类别转字符串
    /// </summary>
    /// <param name="val"> 魔法效果类别 </param>
    /// <returns>字符串</returns>
    public static extern string modifier_type_to_str(int? val);

    /// <summary>
    /// 字符串转魔法效果类别
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>魔法效果类别</returns>
    public static extern int? str_to_modifier_type(string val);

    /// <summary>
    /// 魔法效果影响类型转字符串
    /// </summary>
    /// <param name="val"> 魔法效果影响类别 </param>
    /// <returns>字符串</returns>
    public static extern string modifier_effect_type_to_str(int? val);

    /// <summary>
    /// 字符串转魔法效果影响类型
    /// </summary>
    /// <param name="val"> 字符串 </param>
    /// <returns>魔法效果影响类别</returns>
    public static extern int? str_to_modifier_effect_type(string val);

    /// <summary>
    /// 阵营转字符串
    /// </summary>
    /// <param name="obj"> 阵营对象 </param>
    /// <returns>字符串</returns>
    public static extern string camp_to_str(Camp obj);

    /// <summary>
    /// 随机池转字符串
    /// </summary>
    /// <param name="obj"> 随机池 </param>
    /// <returns>字符串</returns>
    public static extern string random_pool_to_str(RandomPool obj);

    /// <summary>
    /// 键盘按键转字符串
    /// </summary>
    /// <param name="obj"> 键盘按键 </param>
    /// <returns>字符串</returns>
    public static extern string keyboard_key_to_str(int? obj);

    /// <summary>
    /// 字符串转键盘按键
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>键盘按键</returns>
    public static extern int? str_to_keyboard_key(string obj);

    /// <summary>
    /// 鼠标按键转字符串
    /// </summary>
    /// <param name="obj"> 鼠标按键 </param>
    /// <returns>字符串</returns>
    public static extern string mouse_key_to_str(int? obj);

    /// <summary>
    /// 字符串转鼠标按键
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>鼠标按键</returns>
    public static extern int? str_to_mouse_key(string obj);

    /// <summary>
    /// 鼠标滚轮转字符串
    /// </summary>
    /// <param name="obj"> 鼠标滚轮 </param>
    /// <returns>字符串</returns>
    public static extern string mouse_wheel_to_str(int? obj);

    /// <summary>
    /// 字符串转鼠标滚轮
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>鼠标滚轮</returns>
    public static extern int? str_to_mouse_wheel(string obj);

    /// <summary>
    /// 触发器转字符串
    /// </summary>
    /// <param name="obj"> 触发器 </param>
    /// <returns>字符串</returns>
    public static extern string trigger_to_str(dynamic obj);

    /// <summary>
    /// 表转字符串
    /// </summary>
    /// <param name="obj"> 表 </param>
    /// <returns>字符串</returns>
    public static extern string table_to_str(dynamic obj);

    /// <summary>
    /// 伤害类型转字符串
    /// </summary>
    /// <param name="obj"> 伤害类型 </param>
    /// <returns>字符串</returns>
    public static extern string damage_type_to_str(int? obj);

    /// <summary>
    /// 字符串转伤害类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>伤害类型</returns>
    public static extern int? str_to_damage_type(string obj);

    /// <summary>
    /// 单位属性类型转字符串
    /// </summary>
    /// <param name="obj"> 属性类型 </param>
    /// <returns>字符串</returns>
    public static extern string unit_attr_type_to_str(string obj);

    /// <summary>
    /// 字符串转单位属性类型
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>属性类型</returns>
    public static extern string str_to_unit_attr_type(string obj);

    /// <summary>
    /// 字符串转UI事件
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <returns>UI事件</returns>
    public static extern string str_to_ui_event(string obj);

    /// <summary>
    /// 控件转字符串
    /// </summary>
    /// <param name="obj"> 控件 </param>
    /// <returns>字符串</returns>
    public static extern string comp_to_str(string obj);

    /// <summary>
    /// 获取本地语言环境
    /// </summary>
    /// <returns>语言环境</returns>
    public static extern int? get_client_language_type();

    /// <summary>
    /// 截取
    /// </summary>
    /// <param name="obj"> 字符串 </param>
    /// <param name="start"> start </param>
    /// <param name="end_"> end </param>
    /// <returns>str</returns>
    public static extern string string_slice(string obj,int? start,int? end_);

    /// <summary>
    /// 取反
    /// </summary>
    /// <param name="v"> bool </param>
    /// <returns>bool</returns>
    public static extern bool? bool_not(bool? v);

    /// <summary>
    /// 获取返回的服务器时间(年)
    /// </summary>
    /// <param name="v"> float </param>
    /// <returns>int</returns>
    public static extern int? get_year_of_server_timestamp(double? v);

    /// <summary>
    /// 获取返回的服务器时间(月)
    /// </summary>
    /// <param name="v"> float </param>
    /// <returns>int</returns>
    public static extern int? get_month_of_server_timestamp(double? v);

    /// <summary>
    /// 获取返回的服务器时间(日)
    /// </summary>
    /// <param name="v"> float </param>
    /// <returns>int</returns>
    public static extern int? get_day_of_server_timestamp(double? v);

    /// <summary>
    /// 获取返回的服务器时间(小时)
    /// </summary>
    /// <param name="v"> float </param>
    /// <returns>int</returns>
    public static extern int? get_hour_of_server_timestamp(double? v);

    /// <summary>
    /// 随机池结果迭代器
    /// </summary>
    /// <param name="v"> Result </param>
    /// <returns>Python迭代器</returns>
    public static extern dynamic iter_random_pool_result(dynamic v);

    /// <summary>
    /// 获取服务器随机池执行结果
    /// </summary>
    /// <param name="v"> int </param>
    /// <returns>int</returns>
    public static extern int? get_random_pool_ret_code(int? v);

    /// <summary>
    /// 获取服务器随机池掉落影响存档槽位
    /// </summary>
    /// <param name="v"> int </param>
    /// <returns>int</returns>
    public static extern int? get_iter_random_pool_archive_key(int? v);

    /// <summary>
    /// 获取服务器随机池掉落影响存档值
    /// </summary>
    /// <param name="v"> int </param>
    /// <returns>int</returns>
    public static extern int? get_iter_random_pool_archive_increment(int? v);

}
